/*
   Utilizar ambcfg.version para controlar la version anterior
   
   (Antes se usaba ambcfgaud.version. Se controlaba que el script anterior
    se hubiera ejecutado pero no se controlaba si la version actual de la base 
    es la version anterior correcta)

*/
CREATE OR REPLACE FUNCTION aaversion(character varying, character varying)
  RETURNS boolean AS
$BODY$
DECLARE
 pVersioneta      ALIAS for $1;
 pVersionAnterior ALIAS for $2;
 vVersionTexto    VARCHAR;
 
BEGIN
  -- verifica la version actual de la base sea la anterior
 IF NOT EXISTS (SELECT 1 FROM ambcfg WHERE version = pVersionAnterior) THEN
	vVersionTexto := ' Error en: SELECT aaVersion(''' || pVersioneta || ''', ''' || pVersionAnterior || ''');';
	RAISE EXCEPTION 'Error de actualizacion de version, la version actual de la base no es la requerida.%', vVersionTexto;
 END IF;
   
 INSERT INTO ambaudver (version) VALUES (pVersioneta);
 UPDATE ambcfg SET version = pVersioneta;

 RETURN true;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

ALTER FUNCTION aaversion(character varying,character varying) OWNER TO abacouser;

-- ====================================
   SELECT aaVersion('464.04','464.03');
-- ====================================